<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    var o1 = {
        name:"o1"
    };
    var o2 = {
        name:"o2"
    };
    var o3 = {
        __proto__:o1,
        // get proto(){
        //     return this.__proto__
        // }
    }

    console.log(o3);            //{}    注意！是个空对象,说明__proto__是不可见的
    console.log(Object.getPrototypeOf(o3));          // o1
    o3.__proto__ = o2;
    console.log(Object.getPrototypeOf(o3));          // o2

    /* 
        修改o3的__proto__可以修改其内部的[[prototype]]
        但是这个属性是不可打印的，并且是一个getter，setter
    */
</script>
</html>